package com.archway.appframe.web.event;


import javax.servlet.ServletContextEvent;

import org.springframework.web.context.ContextLoaderListener;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;



/**
 * 
 * <strong>(please edit it when context changed)</strong></br>
 * <h1>描述:</h1>
 * <li>重写侦听器部分方法，用于执行部分后启动项</li> 
 * @author lirn
 * @createDate 2014年3月6日 上午12:23:25
 * @copyright Copyright (c) 2014 by lirongnian. All rights reserved.
 */
public class AppframeListener extends ContextLoaderListener {

	
	/*
	 * 
	 * <strong>(please edit it when context changed)</strong></br>
	 * @see org.springframework.web.context.ContextLoaderListener#contextInitialized(javax.servlet.ServletContextEvent)
	 * <h1>描述:</h1>
	 * <li>当servlet上下文初始化结束时，初始化其他配置 </li> 
	 * <li>1.全局数据字典缓存配置/li>  
	 * @author lirn
	 * @createDate 2014年3月6日 上午12:23:55
	 */
	@Override
	public void contextInitialized(ServletContextEvent event) {
		super.contextInitialized(event);// 重载了加载 所有context.xml 的侦听器
		System.out.println("==========bean部署结束============");
		/******************* 获取应用服务器上下文 *********************/
		WebApplicationContext wac = WebApplicationContextUtils.getWebApplicationContext(event.getServletContext());
		/******************* 启动应用缓存配置 ************************/
		System.out.println("==========刷入缓存开始======================");
		this.createApplicationCache(wac);
		System.out.println("==========刷入缓存结束======================");
	}
	

	/**
	 * 
	 * <strong>(please edit it when context changed)</strong></br>
	 * <h1>描述:</h1>
	 * <li>将缓存类注册进系统应用上下文</li> 
	 * @param ac
	 * @author lirn
	 * @createDate 2014年3月6日 上午12:24:05
	 */
	private void createApplicationCache(WebApplicationContext ac) {
		AnnotationConfigWebApplicationContext annoAc = (AnnotationConfigWebApplicationContext) ac;
		//
		System.out.println("假想缓存刷新");
		
//		String[] str = ac.getBeanDefinitionNames();
//		for (String string : str) {
//			System.out.println("!!!-" + string);
//		}
	}



	
}
